package de.previsor.workflow.control.helper;

/**
 *
 * @author Michael Müller
 * Datum:  08.11.2014
 */
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


/***
 * Verschlüsselt übergebene Passwörter mit dem MD Algorithmus
 * und gibt das verschlüsselte Passwort zurück.  
 */
public class HashPw {

	private String password;		// Ursprüngliches Passwort
	private String hashedPassword;          // Verschlüsselter Wert
	
	public HashPw(String p) {
		this.password = p;
		this.hashedPassword = null;
	}
	
		
	/***
	 * Verschlüsselt das Passwort mit MD5 und gibt verschlüsseltes Passwort zurück.
	 * @return gibt das verschlüsselte Passwort als String zurück
	 * @throws NoSuchAlgorithmException wird erzeugt wenn der verwendete Algorithmus nicht
         * verwendet werden kann
	 */
	public String hashing() throws NoSuchAlgorithmException
	{
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		md5.update(password.getBytes());
		BigInteger hash = new BigInteger(1, md5.digest());
		hashedPassword = hash.toString(16);

		return hashedPassword;		
	}	
}
